using System;
using System.Collections.Generic;
using Sustainalytics.ESGComputing.Service.Tests.GovernanceUnitTests.Fixtures;

namespace Sustainalytics.ESGComputing.Service.Tests.GovernanceUnitTests
{
    public class GovernanceDataFixtureSuperSet:IDisposable
    {
        public List<BaseGovernanceFixture> GovernanceFixturesList= new List<BaseGovernanceFixture>()
        {
            new GovernanceGivenExcelFixture()
        };

        bool _disposed;

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        ~GovernanceDataFixtureSuperSet()
        {
            Dispose(false);
        }

        protected virtual void Dispose(bool disposing)
        {
            if (_disposed)
                return;

            if (disposing)
            {
                foreach (var fixture in GovernanceFixturesList)
                {
                    fixture.Dispose();
                }
            }

            // release any unmanaged objects
            // set the object references to null

            _disposed = true;
        }
    }
}